package org.example.projecttwo.entity.dto.user.request;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.time.LocalDate;

@Data
@Schema(description = "创建用户DTO")
public class CreateUserDTO {

    @Schema(description = "用户名（登录账号）")
    @NotBlank(message = "用户名不能为空")
    private String username;

    @Schema(description = "昵称")
    @NotBlank(message = "昵称不能为空")
    private String nickname;

    @Schema(description = "密码")
    @NotBlank(message = "密码不能为空")
    private String password;

    @Schema(description = "确认密码")
    @NotBlank(message = "确认密码不能为空")
    private String confirmPassword;

    @Schema(description = "手机号")
    private String phone;

    @Schema(description = "邮箱")
    private String email;

    @Schema(description = "学院ID")
    @NotNull(message = "学院不能为空")
    private Long collegeId;

    @Schema(description = "性别 1-男 2-女")
    private Integer gender;

    @Schema(description = "出生日期")
    private LocalDate birthday;

    @Schema(description = "专业班级")
    private String majorClass;

    @Schema(description = "学号")
    private String studentNo;

    @Schema(description = "角色编码 0:普通用户 1:管理员 2:超级管理员")
    private Integer roleCode;

    @Schema(description = "认证类型 0-个人 1-学生组织 2-学院部门 3-学校官方")
    private Integer authType;

    @Schema(description = "账号状态 0-启用 1-禁用 2-冻结")
    private Integer status = 0;
}